﻿//using BigMonitoringWarningApi.Model.ApiResult;
//using BigMonitoringWarningApi.Tool.Extension;
//using GYCTOAManagementSystemNewApi.Model;
//using GYCTOAManagementSystemNewApi.Model.API;
//using GYCTOAManagementSystemNewApi.Model.DTO.KnowledgeFile;
//using GYCTOAManagementSystemNewApi.Model.Entity;
//using GYCTOAManagementSystemNewApi.Model.Enum;
//using GYCTOAManagementSystemNewApi.Model.Tool;
//using GYCTOAManagementSystemNewApi.Model.ViewModel;
//using GYCTOAManagementSystemNewApi.Public;
//using GYCTOAManagementSystemNewApi.Service;
//using GYCTOAManagementSystemNewApi.Tool;
//using Microsoft.AspNetCore.Authorization;
//using Microsoft.AspNetCore.Http;
//using Microsoft.AspNetCore.Mvc;
//using Microsoft.EntityFrameworkCore;
//using Microsoft.Extensions.Logging;
//using Newtonsoft.Json;
//using Newtonsoft.Json.Linq;
//using System;
//using System.Collections.Generic;
//using System.IO;
//using System.IO.Compression;
//using System.Linq;
//using System.Net.Http;
//using System.Text;
//using System.Threading.Tasks;
//using System.Transactions;

//namespace GYCTOAManagementSystemNewApi.Controllers
//{
//    [Route("api/[controller]/[action]")]
//    [ApiController]
//    [Authorize]
//    public class KnowledgeFileController : Controller
//    {
//        private readonly ILogger<KnowledgeFileController> _logger;
//        DBContext _db;
//        //private readonly IHttpContextAccessor _accessor;
//        private readonly int _UserId = 0;
//        private readonly string  _Power = string.Empty;

//        //项目文件夹路径地址
//        private List<string> DirPatharrayList = new List<string>() {  GlobalPublic.ProjectFilePath,
//                                  ((int)FileTypeEnum.Project).ToString()};

//        public KnowledgeFileController(ILogger<KnowledgeFileController> logger, DBContext db, IHttpContextAccessor accessor)
//        {
//            //  _accessor = accessor;
//            _UserId = accessor.HttpContext.User.Claims.FirstOrDefault().Value.ToInt();
//            _Power = accessor.HttpContext.User.Claims.ToList()[2].Value.ToUpper();
//            _logger = logger;
//            _db = db;
//        }

//        /*
//                /// <summary>
//                /// 获取所有文件夹相关信息
//                /// </summary>
//                /// <returns></returns>
//                [HttpPost]
//                public async Task<ApiResult> GetDirectoryInfo()
//                {
//                    var _UserId = HttpContext.User.Claims.ToList().FirstOrDefault().Value;
//                    var KnowledgeFileList = await (from know in _db.KnowledgeFile
//                                                   where know.SelPower.Contains(_UserId) && know.FileStateType.Equals((int)KnowledgeFileEnum.directory) && !know.Delete
//                                                   select new knowledgefileView
//                                                   {
//                                                       OnlyId = know.Id,
//                                                       OnlyParentId = know.PrId,
//                                                       OnlyValue = know.Id,
//                                                       OnlyText = know.FileName,
//                                                   }).ToListAsync();
//                    return ApiResult.True(KnowledgeFileList.BuildTree(true));
//                }

//                /// <summary>
//                /// 获取文件信息
//                /// </summary>
//                /// <param name="formData"></param>
//                /// <returns></returns>
//                /// <exception cref="Exception"></exception>
//                [HttpPost]
//                public async Task<ApiPageResult<List<KnowledgeFile>>> GetFileInfo([FromBody] dynamic formData)
//                {
//                    var _UserId = HttpContext.User.Claims.ToList().FirstOrDefault().Value;
//                    GetFileInfoDTO j_token = JsonConvert.DeserializeObject<GetFileInfoDTO>(formData.ToString());
//                    try
//                    {
//                        var KnowledgeFileList = _db.KnowledgeFile.Where(know => know.PrId.Equals(j_token.Prid) && know.SelPower.Contains(_UserId) && know.FileStateType.Equals((int)KnowledgeFileEnum.File) && !know.Delete);
//                        var dsds = KnowledgeFileList.ToList();
//                        if (!string.IsNullOrWhiteSpace(j_token.KeyWord.ToString()))
//                        {
//                            KnowledgeFileList = KnowledgeFileList.Where(x => x.FileName.Contains(j_token.KeyWord.ToString()));
//                        }
//                        KnowledgeFileList = KnowledgeFileList.OrderByDescending(know => know.Id);
//                        return ApiPageResult.True(await KnowledgeFileList.Skip(j_token.PageIndex * (j_token.PageSize - 1)).Take(j_token.PageIndex).ToListAsync(), j_token.PageIndex, j_token.PageSize, KnowledgeFileList.Count());
//                    }
//                    catch (Exception ex)
//                    {
//                        _logger.LogError(ex.Message, ex.TargetSite);
//                        throw new Exception(ex.Message);
//                    }
//                }
//        */

//        /// <summary>
//        /// 文件目录架构
//        /// </summary>
//        /// <returns></returns>
//        [HttpPost]
//        public async Task<ApiResult> GetDirectoryFileInfo([FromBody] dynamic formData)
//        {
//            JToken j_token = JsonConvert.DeserializeObject<JToken>(formData.ToString());
//            var ProjectId = j_token["ProjectId"].ToInt();
//            var KeyWord = j_token["KeyWord"].ToString();
//                if ((_db.Project.Where(x => x.Id.Equals(ProjectId) 
//                 &&(x.FileRightView.Contains(_UserId.ToString())
//                     ||x.HeadUserId.Equals(_UserId.ToString()) ||"ADMIN".Contains(_Power))).Count()==0))

//                {
//                    return ApiResult.False(ApiStatusCodeEnum.Code403);
//            }
//            var pRojectFir = _db.Project.Find(ProjectId);
//            var data = _db.KnowledgeFile.Where(x => x.ProjectId.Equals(ProjectId) && !x.Delete).AsQueryable();
//            var dataLIstFir = data.ToList();
//            if (!string.IsNullOrWhiteSpace(KeyWord))
//            {
//                data = data.Where(x => x.FileName.Contains(KeyWord));
//            }
//            var dataList = await data.OrderBy(x => x.FileStateType).ThenByDescending(x => x.OperatDate).ToListAsync();
//            return ApiResult.True(dataList);
//        }
//        /// <summary>
//        /// 权限修改控制
//        /// </summary>
//        /// <returns></returns>
//        [HttpPost]
//        public async Task<ApiResult> SetknowPwoerInfo([FromBody] dynamic formData)
//        {
//            knowPwoerDTO j_token = JsonConvert.DeserializeObject<knowPwoerDTO>(formData.ToString());
//            var projectFir = _db.Project.Find(j_token.ProjectId);
//            try
//            {
//                if (!(projectFir.HeadUserId.Equals(_UserId.ToString()) || "ADMIN".Contains(_Power)))
//                {
//                    return ApiResult.False(ApiStatusCodeEnum.Code403);
//                }
//                if (projectFir != null)
//                {
//                    projectFir.FileRightAdd = j_token.FileRightAdd.Replace('，', ',');
//                    projectFir.FileRightDel = j_token.FileRightDel.Replace('，', ',');
//                    projectFir.FileRightDown = j_token.FileRightDown.Replace('，', ',');
//                    projectFir.FileRightUpdate = j_token.FileRightUpdate.Replace('，', ',');
//                    projectFir.FileRightView = j_token.FileRightView.Replace('，', ',');
//                    projectFir.OperatDate = DateTime.Now;
//                    projectFir.OperatId = Convert.ToInt32(_UserId);
//                    _db.Update(projectFir);
//                    return ApiResult.True(await _db.SaveChangesAsync());
//                }
//            }
//            catch (Exception ex)
//            {
//                return ApiResult.False("服务器请求出错，请验证修改内容是否正确");
//            }
//            return ApiResult.False("请判断数据传输中项目Id是否正确");
//        }
//        /// <summary>
//        /// 知识库文件删除
//        /// </summary>
//        /// <returns></returns>
//        [HttpPost]
//        public async Task<ApiResult> SetDelknowPwoer([FromBody] dynamic formData)
//        {
//            SetDelknowPwoerDTO j_token = JsonConvert.DeserializeObject<SetDelknowPwoerDTO>(formData.ToString());
//           // if (!(_db.Project.Where(x => x.Id.Equals(j_token.ProjectId) && x.FileRightDel.Contains(_UserId.ToString())).Count() > 0))
           
//                if (!(_db.Project.Where(x => x.Id.Equals(j_token.ProjectId)
//                              && (x.FileRightDel.Contains(_UserId.ToString())
//                                  || x.HeadUserId.Equals(_UserId.ToString())
//                                  || "ADMIN".Contains(_Power))).Count() > 0))
//                {
//                return ApiResult.False(ApiStatusCodeEnum.Code403);
//                }

//            var projectFirInfo = _db.Project.Find(j_token.ProjectId);
//            if (projectFirInfo != null)
//            {
//                if (projectFirInfo.FileRightDel.Contains(_UserId.ToString()))
//                {
//                    if (!string.IsNullOrWhiteSpace(j_token.knowPwoerId))
//                    {
//                        var fileArray = j_token.knowPwoerId.Split(',').Select(x => Convert.ToInt32(x)).ToList();
//                        var KnowledgeFileById = _db.KnowledgeFile.Where(x => fileArray.Contains(x.Id)).ToList();
//                        List<KnowledgeFile> KnowledgeFileArray = new List<KnowledgeFile>();
//                        foreach (var item in KnowledgeFileById)
//                        {
//                            if (item.FileStateType.Equals((int)KnowledgeFileEnum.directory))
//                            {
//                                var chlidfileDirectory = ToolService.FindChild(_db.KnowledgeFile.Where(x => x.ProjectId.Equals(j_token.ProjectId) && !x.Delete).ToList(), item.Id);
//                                if (chlidfileDirectory.Count > 0)
//                                {
//                                    //子类文件信息
//                                    foreach (var itemchard in chlidfileDirectory)
//                                    {
//                                        itemchard.Delete = true;
//                                        KnowledgeFileArray.Add(itemchard);
//                                    };
//                                }
//                                //文件本身删除
//                                item.Delete = true;
//                                KnowledgeFileArray.Add(item);
//                                #region 文件夹删除
//                                var DirPatharray = DirPatharrayList;
//                                DirPatharray.Add(item.FilePath);
//                                var DirPathstr = Path.Combine(DirPatharray.ToArray());
//                                if (Directory.Exists(DirPathstr))
//                                {
//                                    Directory.Delete(DirPathstr, true);
//                                }
//                                #endregion
//                            }
//                            else
//                            {
//                                //文件本身删除
//                                item.Delete = true;
//                                KnowledgeFileArray.Add(item);
//                                #region 文件删除
//                                var DirPatharray = DirPatharrayList;
//                                DirPatharray.Add(item.FilePath);
//                                var DirPathstr = Path.Combine(DirPatharray.ToArray());
//                                if (System.IO.File.Exists(DirPathstr))
//                                {
//                                    System.IO.File.Delete(DirPathstr);
//                                }
//                                #endregion
//                            }

//                        }
//                        if (await _db.SaveChangesAsync() > 0)
//                        {
//                            return ApiResult.True("当前文件和当前文件包含的内容以及全部删除完成");
//                        }
//                        else
//                        {
//                            return ApiResult.False("对不起,当前无目录删除");
//                        }
//                    }
//                    else
//                    {
//                        return ApiResult.False("请选择,需要删除的文件信息");
//                    }
//                }
//                else
//                {
//                    return ApiResult.False("对不起,您当前不具备删除权限");
//                }
//            }
//            else
//            {
//                return ApiResult.False("服务器错误,请检查项目Id是否正确");
//            }
//        }

//        /// <summary>
//        /// 知识库文件重命名
//        /// </summary>
//        /// <returns></returns>
//        [HttpPost]
//        public async Task<ApiResult> SetUpNameknowPwoer([FromBody] dynamic formData)
//        {
//            SetUpNameknowPwoerDTO j_token = JsonConvert.DeserializeObject<SetUpNameknowPwoerDTO>(formData.ToString());
//            var KnowListByPrId = await _db.KnowledgeFile.Where(x => x.PrId.Equals(j_token.PrId) && !x.Delete).ToListAsync();
//            if (!(_db.Project.Where(x => x.Id.Equals(KnowListByPrId.FirstOrDefault().ProjectId) && 
//            (x.FileRightUpdate.Contains(_UserId.ToString())
//            ||x.HeadUserId.Equals(_UserId.ToString())
//             || "ADMIN".Contains(_Power))).Count() > 0))
//            {
//                return ApiResult.False(ApiStatusCodeEnum.Code403);
//            }
//            var KnowById = KnowListByPrId.Where(x => x.Id.Equals(j_token.Id)).FirstOrDefault();
//            if (KnowListByPrId.Where(x => x.FileName.Equals(j_token.NewFileName) && x.PrId.Equals(j_token.PrId) && x.FileStateType.Equals(KnowById.FileStateType) && x.FileType.Equals(KnowById.FileType)).Count() > 0)
//            {
//                return ApiResult.False("同种类型文件在同一层级下不能出现相同的文件名称");
//            }
//            else
//            {
//                if (!string.IsNullOrEmpty(j_token.NewFileName))
//                {
//                    KnowById.FileName = j_token.NewFileName;
//                    KnowById.OperatDate = DateTime.Now;
//                    KnowById.OperatId = _UserId;
//                    _db.KnowledgeFile.Update(KnowById);
//                    return ApiResult.True(await _db.SaveChangesAsync());
//                }
//                return ApiResult.False("文件名称不能为空");

//            }
//        }

//        /// <summary>
//        /// 创建项目文件夹
//        /// </summary>
//        /// <returns></returns>
//        [HttpPost]
//        public async Task<ApiResult<KnowledgeFile>> CreateProjectDirectory([FromBody] dynamic formData)
//        {
//            try
//            {
//                CreateProjectDirectoryDTO j_token = JsonConvert.DeserializeObject<CreateProjectDirectoryDTO>(formData.ToString());
//                     if (!(_db.Project.Where(x => x.Id.Equals(j_token.ProjectId) &&
//            (x.FileRightAdd.Contains(_UserId.ToString()) || x.HeadUserId.Equals(_UserId.ToString()) || "ADMIN".Contains(_Power))).Count() > 0))
//                    {
//                    return ApiResult.False<KnowledgeFile>(ApiStatusCodeEnum.Code403.GetEnumDescription());
//                }
//                if (!string.IsNullOrWhiteSpace(j_token.FileName))
//                {
//                  ///  var dsds = _db.KnowledgeFile.Where(x => x.PrId.Equals(j_token.Prid) && x.FileName.Equals(j_token.FileName) && x.FileStateType.Equals((int)KnowledgeFileEnum.directory)).Count();
//                    if (!(_db.KnowledgeFile.Where(x => x.PrId.Equals(j_token.Prid) && x.FileName.Equals(j_token.FileName) && x.FileStateType.Equals((int)KnowledgeFileEnum.directory)).Count() > 0))
//                    {
//                        using (TransactionScope scope = new TransactionScope())
//                        {
//                            var newKnow = new KnowledgeFile()
//                            {
//                                CreateUserId = _UserId,
//                                Delete = false,
//                                FileName = j_token.FileName,
//                                FileStateType = (int)KnowledgeFileEnum.directory,
//                                OperatDate = DateTime.Now,
//                                PrId = j_token.Prid.ToInt(),
//                                ProjectId = j_token.ProjectId.ToInt(),
//                                FileType = "Directory",
//                            };
//                            _db.KnowledgeFile.Add(newKnow);
//                            if (_db.SaveChanges() > 0)
//                            {
//                                //项目文件夹路径地址 

//                                var DirPatharray = DirPatharrayList;
//                                DirPatharray.Add(j_token.PrFilePath);
//                                DirPatharray.Add(newKnow.Id.ToString());
//                                var DirPathstr = Path.Combine(DirPatharray.ToArray());
//                                if (!Directory.Exists(DirPathstr))
//                                {
//                                    Directory.CreateDirectory(DirPathstr);
//                                }
//                                newKnow.FilePath = Path.Combine(j_token.PrFilePath, newKnow.Id.ToString());
//                                _db.KnowledgeFile.Update(newKnow);
//                                _db.SaveChanges();
//                            }
//                            //事务提交
//                            scope.Complete();
//                            return ApiResult.True(newKnow);
//                        }
//                    }
//                    else
//                    {
//                        return ApiResult.False<KnowledgeFile>("当前目录下有相同的文件目录信息,请重新数据文件夹名称");
//                    }
//                }
//                else
//                {
//                    return ApiResult.False<KnowledgeFile>("新建文件夹名称不能为空");
//                }
//            }
//            catch (Exception)
//            {
//                return ApiResult.False<KnowledgeFile>("服务器出现异常");
//            }


//        }

//        /*
//        /// <summary>
//        /// 下载文件相关信息
//        /// </summary>
//        /// <param name="id"></param>
//        /// <returns></returns>
//        public async Task<ApiResult> DownKnowFileInfoAsync(string id)
//        {
                
//        } */

//        private readonly static object _Form_Lock = new object();
//        /// <summary>
//        /// 文件上传相关信息
//        /// </summary>
//        /// <param name="id"></param>
//        /// <returns></returns>
//        [HttpPost]
//        public ApiResult FileRightAdd([FromForm] dynamic formData, IFormFile ifile)
//        {
//            try
//            {
//                var PrPath = HttpContext.Request.Form["PrPath"].ToString();
//                var PrId = HttpContext.Request.Form["PrId"].ToInt();
//                var ProjectId = HttpContext.Request.Form["ProjectId"].ToInt();
//                var NewFileName = HttpContext.Request.Form["NewFileName"].ToString();
//               if (!(_db.Project.Where(x => x.Id.Equals(ProjectId) &&
//             (x.FileRightAdd.Contains(_UserId.ToString()) || x.HeadUserId.Equals(_UserId.ToString()) || "ADMIN".Contains(_Power))).Count() > 0))
//                    {
//                    return ApiResult.False(ApiStatusCodeEnum.Code403);
//                }
//                FileRightAddDTO j_token = new FileRightAddDTO()
//                {
//                    PrPath = PrPath,
//                    ProjectId = ProjectId,
//                    PrId = PrId,
//                    NewFileName = NewFileName,
//                };
//                var IFilesInfo = HttpContext.Request.Form.Files;
//                if (!string.IsNullOrWhiteSpace(j_token.PrPath))
//                {
//                    using (TransactionScope scope = new TransactionScope())
//                    {
//                        foreach (var file in IFilesInfo)
//                        {

//                            if (file.Length > 20971520)
//                            {
//                                return ApiResult.False("文件上传最大为20M,请选择20M以下文件进行上传");
//                            }
//                            var FileNameStr = file.FileName;
//                            if (!string.IsNullOrWhiteSpace(NewFileName))
//                            {
//                                FileNameStr = NewFileName;
//                            }

//                            var filename = FileNameStr.Substring(0, FileNameStr.LastIndexOf('.'));
//                            var FileTYpe = FileNameStr.Substring(FileNameStr.LastIndexOf('.'), FileNameStr.Length - FileNameStr.LastIndexOf('.'));
//                            var FileName = string.Empty;
//                            lock (_Form_Lock)
//                            {
//                                //获取项目下所有文件项目名称
//                                var repeatNameListque = _db.KnowledgeFile.Where(x => x.PrId.Equals(j_token.PrId) && !x.Delete).Select(x => x.FileName).ToList();
//                                //获取名称编号信息
//                                repeatNameListque = repeatNameListque.Where(x => x.Substring(0, x.LastIndexOf('(') == -1 ? x.Length : x.LastIndexOf('(')).Equals(filename)).ToList();
//                                //排序
//                                var repeatNameList = repeatNameListque.ToList().OrderBy(x => x).ToList();
//                                if (repeatNameList.Count > 0)
//                                {
//                                    var sds = repeatNameList.LastOrDefault();
//                                    var ds = sds.LastIndexOf('(');
//                                    //第一个重复名称重命名
//                                    if (ds.Equals(-1))
//                                    {
//                                        filename = string.Format("{0}({1})", filename, 1); //文件名+(count)+后缀
//                                    }
//                                    else
//                                    {
//                                        var ends = sds.LastIndexOf(')');
//                                        var dewe = sds.Substring(ds + 1, ends - ds - 1).ToInt() + 1;
//                                        filename = string.Format("{0}({1})", filename, dewe); //文件名+(count)+后缀
//                                    }
//                                }
//                                var KnowFile = new KnowledgeFile()
//                                {
//                                    CreateUserId = _UserId,
//                                    Delete = false,
//                                    FileName = filename,
//                                    FileStateType = (int)KnowledgeFileEnum.File,
//                                    FileType = FileTYpe.Substring(1, FileTYpe.Length - 1),
//                                    FileSize = file.Length.CalculateSize(),
//                                    OperatDate = DateTime.Now,
//                                    OperatId = _UserId,
//                                    ProjectId = j_token.ProjectId.ToInt(),
//                                    PrId = PrId,
//                                };

//                                _db.KnowledgeFile.Add(KnowFile);
//                                _db.SaveChanges();
//                                FileName = KnowFile.Id + FileTYpe;//文件名称
//                                KnowFile.FilePath = Path.Combine(j_token.PrPath, FileName);

//                                _db.SaveChanges();
//                                //项目文件夹路径地址
//                                string[] DirPatharray = new string[] {
//                                      GlobalPublic.ProjectFilePath,
//                                      ((int)FileTypeEnum.Project).ToString(),
//                                     j_token.PrPath
//                                };

//                                var DirPathstr = Path.Combine(DirPatharray);
//                                if (!PublicTool.SaveFile(DirPathstr, file, FileName))
//                                {
//                                    return ApiResult.False("信息提交失败,请正确查看数据连接");
//                                }
//                            }
//                        }
//                        scope.Complete();
//                    }
//                    //事务提交
//                    return ApiResult.True("文件信息上传成功");
//                }
//                else
//                {
//                    return ApiResult.False("请将上传参数中的父级地址参数上传");
//                }
//            }
//            catch (Exception ex)
//            {
//                return ApiResult.False("数据信息提交失败");
//            }

//        }

//        /// <summary>
//        /// 下载文件
//        /// </summary>
//        /// <param name="FileName">待下载文件名</param>
//        /// <returns></returns>
//        [HttpPost]
//        public IActionResult DownloadFile([FromBody] dynamic formData)
//        {
//            try
//            {
//                DownKnowledgeFileDTO j_token = JsonConvert.DeserializeObject<DownKnowledgeFileDTO>(formData.ToString());
//                if (j_token.IsDownFile)
//                {
//                    //下载权限
//                  //  if (!(_db.Project.Where(x => x.Id.Equals(j_token.ProjectId) && x.FileRightDown.Contains(_UserId.ToString())).Count() > 0))
//                        if (!(_db.Project.Where(x => x.Id.Equals(j_token.ProjectId) &&
//             (x.FileRightDown.Contains(_UserId.ToString()) || x.HeadUserId.Equals(_UserId.ToString()) || "ADMIN".Contains(_Power))).Count() > 0))

//                        {
//                            return Json(ApiStatusCodeEnum.Code403.GetEnumDescription());
//                    }
//                }
//                else
//                {
//                    // 查看权限
//                 //   if (!(_db.Project.Where(x => x.Id.Equals(j_token.ProjectId) && x.FileRightView.Contains(_UserId.ToString())).Count() > 0))

//                        if (!(_db.Project.Where(x => x.Id.Equals(j_token.ProjectId) &&
//(x.FileRightView.Contains(_UserId.ToString()) || x.HeadUserId.Equals(_UserId.ToString())|| "ADMIN".Contains(_Power))).Count() > 0) )
//                        {
//                        return Json(ApiStatusCodeEnum.Code403.GetEnumDescription());
//                    }
//                }
//                string[] DirPatharray = new string[] {
//                                  GlobalPublic.ProjectFilePath,
//                                  ((int)FileTypeEnum.Project).ToString(),
//                                j_token.FilePath,
//                    };
//                var filePath = Path.Combine(DirPatharray);
//                if (filePath.FileDirectoryInfoExists(j_token.FileStateType == (int)KnowledgeFileEnum.directory ? KnowledgeFileEnum.directory : KnowledgeFileEnum.File))
//                {
//                    if (j_token.FileStateType == (int)KnowledgeFileEnum.directory)
//                    {
//                        DirectoryInfo dirinfo = new DirectoryInfo(filePath);
//                        {
//                            FileInfo[] files = dirinfo.GetFiles(); // 获取该目录下的所有文件
//                            if (files.Count() > 1)
//                            {
//                                var serverPath = filePath;
//                                var filename = serverPath + ".zip";
//                                if (System.IO.File.Exists(filename))
//                                {
//                                    System.IO.File.Delete(filename);
//                                }
//                                ZipFile.CreateFromDirectory(serverPath, filename);
//                                var FIlename = filename.Split('\\').LastOrDefault();
//                                return File(new FileStream(filename, FileMode.Open, FileAccess.Read), "application/octet-stream", FIlename);
//                            }
//                            else if (files.Count() == 1)
//                            {
//                                filePath = files[0].ToString();
//                            }
//                            else
//                            {
//                                return Json("该文件夹为空文件夹,不允许下载");
//                            }
//                        }
//                    }
//                    return File(new FileStream(filePath, FileMode.Open), "text/plain", Path.GetFileName(filePath));
//                }
//                else
//                {
//                    return Json("该文件夹或文件,路径地址错误请检查");
//                }
//            }
//            catch (Exception ex)
//            {
//                return Json("服务器发生错误");
//            }
//        }
//    }
//}
